home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / library / reqtlsdv.lha / ReqTools / Glue / M2Amiga / m2amiga_glue.lha / ReqTools.def < prev    next >
Text File  |  1992-08-17  |  23KB  |  642 lines

  1. (* ------------------------------------------------------------------------
  2.   :Program.       ReqTools
  3.   :Contents.      Interface to Nico François' reqtools.library
  4.   :Author.        Kai Bolay [kai] (C-Version by Nico François)
  5.   :Address.       Hoffmannstraße 168
  6.   :Address.       D-7250 Leonberg 1 (Germany)
  7.   :Address.       UUCP: ...!cbmvax!cbmehq!cbmger!depot1!amokle!kai
  8.   :Address.       FIDO: 2:247/706.3
  9.   :History.       v1.0 [kai] 22-Nov-91 (translated from C)
  10.   :History.       v1.0m [Frank Lömker] 24-Feb-92 Umsetzung nach Modula
  11.   :History.       v2.0m [Frank Lömker] 10-Aug-92 ReqTools V38
  12.   :History.                                      ReqToolsBase korrigiert
  13.   :Copyright.     Freeware
  14.   :Language.      Modula-2
  15.   :Translator.    M2Amiga V4.0d
  16.   :Remark.        Thanks to Nico for his great library
  17.   :Bugs.          ReqTools/Arq should support each other
  18.   :Bugs.          Font-Hook: ta.name can contain odd pointer :-(
  19. ------------------------------------------------------------------------ *)
  20.  
  21. (*
  22. **  Filename: reqtools.def
  23. **  Release: 2.0
  24. **
  25. **  Modula interface.
  26. **
  27. **  (C) Copyright 1991/1992 Nico François
  28. **      All Rights Reserved
  29. *)
  30.  
  31. DEFINITION MODULE ReqTools{"reqtools.library",38};
  32.  
  33. FROM IntuitionD IMPORT IntuitionBasePtr,WindowPtr,ScreenPtr,NewWindow;
  34. FROM GraphicsD IMPORT GfxBasePtr,TextFontPtr,TextAttr;
  35. FROM DosD IMPORT DosLibraryPtr;
  36. FROM ExecD IMPORT Library,LibraryPtr;
  37. FROM SYSTEM IMPORT ADDRESS,SHORTSET,LONGSET,BPTR;
  38. FROM UtilityD IMPORT HookPtr,TagItem,TagItemPtr,Tag,tagUser;
  39.  
  40. TYPE STRPTR=ADDRESS;
  41. CONST
  42.   ReqToolsName = "reqtools.library";
  43.   ReqToolsVersion = 38;
  44.  
  45. TYPE
  46.   ReqToolsBasePtr = POINTER TO ReqToolsBase;
  47.  
  48. VAR reqToolsVersion:INTEGER;
  49.     reqToolsBase:ReqToolsBasePtr;
  50.  
  51. TYPE
  52.   ReqToolsBase = RECORD
  53.     libNode: Library;
  54.     flags: SHORTSET;
  55.     pad1,pad2,pad3:SHORTINT;
  56.     segList: BPTR;
  57.     (* The following library bases may be read and used by your program *)
  58.     intuitionBase: IntuitionBasePtr;
  59.     gfxBase: GfxBasePtr;
  60.     dosBase: DosLibraryPtr;
  61.     (* Next two library bases are only (and always) valid on Kickstart 2.0!
  62.        (1.3 version of reqtools also initializes these when run on 2.0) *)
  63.     gadToolsBase: LibraryPtr;
  64.     utilityBase: LibraryPtr;
  65.   END;
  66.  
  67. CONST
  68.   (* types of requesters, for AllocRequestA() *)
  69.   TypeFileReq       = 0;
  70.   TypeReqInfo       = 1;
  71.   TypeFontReq       = 2;
  72.   TypeScreenModeReq = 3;
  73.  
  74. (***********************
  75. *                      *
  76. *    File requester    *
  77. *                      *
  78. ***********************)
  79.  
  80. (* structure _MUST_ be allocated with AllocRequest() *)
  81.  
  82. TYPE
  83.   FileRequesterPtr = POINTER TO FileRequester;
  84.   FileRequester = RECORD
  85.     reqPos: LONGINT;
  86.     leftOffset: INTEGER;
  87.     topOffset: INTEGER;
  88.     flags: LONGSET;
  89.     (* OBSOLETE IN V38! DON'T USE! *) hook: HookPtr;
  90.     dir: STRPTR;                (* READ ONLY! Change with ChangeReqAttrA()! *)
  91.     matchPat: STRPTR;           (* READ ONLY! Change with ChangeReqAttrA()! *)
  92.     defaultFont: TextFontPtr;
  93.     waitPointer: ADDRESS;
  94.     (* V38 *)
  95.     lockWindow: LONGINT;
  96.     shareIDCMP: LONGINT;
  97.     intuiMsgFunc: HookPtr;
  98.     reserved1: INTEGER;
  99.     reserved2: INTEGER;
  100.     reserved3: INTEGER;
  101.     reqHeight: INTEGER;         (* READ ONLY!  Use RTFI_Height tag! *)
  102.     (* Private data follows! HANDS OFF :-) *)
  103.   END;
  104.  
  105. (* returned by FileRequestA() if multiselect is enabled,
  106.    free list with FreeFileList() *)
  107.  
  108.   FileListPtr = POINTER TO FileList;
  109.   FileList = RECORD
  110.     next: FileListPtr;
  111.     strLen: LONGINT;  (* -1 for directories *)
  112.     name: STRPTR;
  113.   END;
  114.  
  115. (* structure passed to RTFI_FilterFunc callback hook by
  116.    volume requester (see RTFI_VolumeRequest tag) *)
  117.  
  118.   VolumeEntryPtr = POINTER TO VolumeEntry;
  119.   VolumeEntry = RECORD
  120.     type: LONGINT;    (* DLT_DEVICE or DLT_DIRECTORY *)
  121.     name: STRPTR;
  122.   END;
  123.  
  124. (***********************
  125. *                      *
  126. *    Font requester    *
  127. *                      *
  128. ***********************)
  129.  
  130. (* structure _MUST_ be allocated with AllocRequest() *)
  131.  
  132.   FontRequesterPtr = POINTER TO FontRequester;
  133.   FontRequester = RECORD
  134.     reqPos: LONGINT;
  135.     leftOffset: INTEGER;
  136.     topOffset: INTEGER;
  137.     flags: LONGSET;
  138.     (* OBSOLETE IN V38! DON'T USE! *) hook: HookPtr;
  139.     attr: TextAttr;  (* READ ONLY! *)
  140.     defaultFont: TextFontPtr;
  141.     waitPointer: ADDRESS;
  142.     (* V38 *)
  143.     lockWindow: LONGINT;
  144.     shareIDCMP: LONGINT;
  145.     intuiMsgFunc: HookPtr;
  146.     reserved1: INTEGER;
  147.     reserved2: INTEGER;
  148.     reserved3: INTEGER;
  149.     reqHeight: INTEGER;         (* READ ONLY!  Use RTFI_Height tag! *)
  150.     (* Private data follows! HANDS OFF :-) *)
  151.   END;
  152.  
  153. (*************************
  154. *                        *
  155. *  ScreenMode requester  *
  156. *                        *
  157. *************************)
  158.  
  159. (* structure _MUST_ be allocated with rtAllocRequest() *)
  160.  
  161.   ScreenModeRequesterPtr = POINTER TO ScreenModeRequester;
  162.   ScreenModeRequester = RECORD
  163.     reqPos: LONGINT;
  164.     leftOffset: INTEGER;
  165.     topOffset: INTEGER;
  166.     flags: LONGSET;
  167.     private1: LONGINT;
  168.     displayID: LONGINT;         (* READ ONLY! *)
  169.     displayWidth: INTEGER;      (* READ ONLY! *)
  170.     displayHeight: INTEGER;     (* READ ONLY! *)
  171.     defaultFont: TextFontPtr;
  172.     waitPointer: ADDRESS;
  173.     lockWindow: LONGINT;
  174.     shareIDCMP: LONGINT;
  175.     intuiMsgFunc: HookPtr;
  176.     reserved1: INTEGER;
  177.     reserved2: INTEGER;
  178.     reserved3: INTEGER;
  179.     reqHeight: INTEGER;         (* READ ONLY!  Use RTFI_Height tag! *)
  180.     displayDepth: INTEGER;
  181.     overscanType: INTEGER;
  182.     autoScroll: LONGINT;
  183.     (* Private data follows! HANDS OFF :-) *)
  184.   END;
  185.  
  186. (***********************
  187. *                      *
  188. *    Requester Info    *
  189. *                      *
  190. ***********************)
  191.  
  192.   (* for EZRequestA(), GetLongA(), GetStringA() and PaletteRequestA(),
  193.    _MUST_ be allocated with AllocRequest() *)
  194.  
  195.   ReqInfoPtr = POINTER TO ReqInfo;
  196.   ReqInfo = RECORD
  197.     reqPos: LONGINT;
  198.     leftOffset: INTEGER;
  199.     topOffset: INTEGER;
  200.     width: LONGINT;              (* not for EZRequestA() *)
  201.     reqTitle: STRPTR;            (* currently only for EZRequestA() *)
  202.     flags: LONGSET;
  203.     defaultFont: TextFontPtr;    (* currently only for PaletteRequestA() *)
  204.     waitPointer: ADDRESS;
  205.     (* V38 *)
  206.     lockWindow: LONGINT;
  207.     shareIDCMP: LONGINT;
  208.     intuiMsgFunc: HookPtr;
  209.     (* structure may be extended in future *)
  210.   END;
  211.  
  212. (***********************
  213. *                      *
  214. *     Handler Info     *
  215. *                      *
  216. ***********************)
  217.  
  218. (* for ReqHandlerA(), will be allocated for you when you use
  219.    the ReqHandler tag, never try to allocate this yourself! *)
  220.  
  221.   HandlerInfoPtr = POINTER TO HandlerInfo;
  222.   HandlerInfo = RECORD
  223.     private1: LONGINT;
  224.     waitMask: LONGSET;
  225.     doNotWait: LONGINT (* LONGBOOL *); (* ? *)
  226.     (* Private data follows, HANDS OFF :-) *)
  227.   END;
  228.  
  229. (* possible return codes from ReqHandlerA() *)
  230. CONST
  231.   CallHandler = 080000000H;
  232.  
  233.  
  234. (*************************************
  235. *                                    *
  236. *                TAGS                *
  237. *                                    *
  238. *************************************)
  239.  
  240.   TagBase = tagUser;
  241.  
  242.   (*** tags understood by most requester functions ***)
  243.    (* optional pointer to window *)
  244.   Window = TagBase+1;
  245.    (* idcmp flags requester should abort on (useful for IDCMP_DISKINSERTED) *)
  246.   IDCMPFlags = TagBase+2;
  247.    (* position of requester window (see below) - default REQPOS_POINTER *)
  248.   ReqPos = TagBase+3;
  249.    (* signal mask to wait for abort signal *)
  250.   LeftOffset = TagBase+4;
  251.    (* topedge offset of requester relative to position specified by ReqPos *)
  252.   TopOffset = TagBase+5;
  253.    (* name of public screen to put requester on (Kickstart 2.0 only!) *)
  254.   PubScrName = TagBase+6;
  255.    (* address of screen to put requester on *)
  256.   Screen = TagBase+7;
  257.    (* tagdata must hold the address of (!) an APTR variable *)
  258.   DoReqHandler = TagBase+8;
  259.    (* font to use when screen font is rejected, _MUST_ be fixed-width font!
  260.     (struct TextFont *, not struct TextAttr *!)
  261.     - default GfxBase->DefaultFont *)
  262.   DefaultFont = TagBase+9;
  263.    (* boolean to set the standard wait pointer in window - default FALSE *)
  264.   WaitPointer = TagBase+10;
  265.   (* (V38) char preceding keyboard shortcut characters (will be underlined) *)
  266.   Underscore = TagBase+11;
  267.   (* (V38) share IDCMP port with window - default FALSE *)
  268.   ShareIDCMP = TagBase+12;
  269.   (* (V38) lock window and set standard wait pointer - default FALSE *)
  270.   LockWindowTag = TagBase+13;
  271.   (* (V38) boolean to make requester's screen pop to front - default TRUE *)
  272.   ScreenToFront = TagBase+14;
  273.   (* (V38) Requester should use this font - default: screen font *)
  274.   Textattr = TagBase+15;
  275.   (* (V38) call this hook for every IDCMP message not for requester *)
  276.   IntuiMsgFunc = TagBase+16;
  277.   (* (V38) Locale ReqTools should use for text *)
  278.   Locale = TagBase+17;
  279.  
  280.   (*** tags specific to EZRequestA ***
  281.   *)
  282.    (* title of requester window - default "Request" or "Information" *)
  283.   ezReqTitle = TagBase+20;
  284.    (* TagBase+21 reserved *)
  285.    (* various flags (see below) *)
  286.   ezFlags = TagBase+22;
  287.    (* default response (activated by pressing RETURN) - default TRUE *)
  288.   ezDefaultResponse = TagBase+23;
  289.  
  290. (*** tags specific to GetLongA ***
  291. *)
  292.    (* minimum allowed value - default MININT *)
  293.   glMin = TagBase+30;
  294.    (* maximum allowed value - default MAXINT *)
  295.   glMax = TagBase+31;
  296.    (* suggested width of requester window (in pixels) *)
  297.   glWidth = TagBase+32;
  298.    (* boolean to show the default value - default TRUE *)
  299.   glShowDefault = TagBase+33;
  300.   (* (V38) string with possible responses - default " _Ok |_Cancel" *)
  301.   glGadFmt = TagBase+34;
  302.   (* (V38) optional arguments for RTGL_GadFmt *)
  303.   glGadFmtArgs = TagBase+35;
  304.   (* (V38) invisible typing - default FALSE *)
  305.   glInvisible = TagBase+36;
  306.   (* (V38) window backfill - default TRUE *)
  307.   glBackfill = TagBase+37;
  308.   (* (V38) optional text above gadget *)
  309.   glTextFmt = TagBase+38;
  310.   (* (V38) optional arguments for RTGS_TextFmt *)
  311.   glTextFmtArgs = TagBase+39;
  312.   (* (V38) various flags (see below) *)
  313.   glFlags = ezFlags;
  314.  
  315. (*** tags specific to GetStringA ***
  316. *)
  317.    (* suggested width of requester window (in pixels) *)
  318.   gsWidth = glWidth;
  319.    (* allow empty string to be accepted - default FALSE *)
  320.   gsAllowEmpty = TagBase+80;
  321.   (* (V38) string with possible responses - default " _Ok |_Cancel" *)
  322.   gsGadFmt  = glGadFmt;
  323.   (* (V38) optional arguments for RTGS_GadFmt *)
  324.   gsGadFmtArgs = glGadFmtArgs;
  325.   (* (V38) invisible typing - default FALSE *)
  326.   gsInvisible = glInvisible;
  327.   (* (V38) window backfill - default TRUE *)
  328.   gsBackfill = glBackfill;
  329.   (* (V38) optional text above gadget *)
  330.   gsTextFmt = glTextFmt;
  331.   (* (V38) optional arguments for RTGS_TextFmt *)
  332.   gsTextFmtArgs = glTextFmtArgs;
  333.   (* (V38) various flags (see below) *)
  334.   gsFlags = ezFlags;
  335.  
  336. (*** tags specific to FileRequestA ***
  337. *)
  338.    (* various flags (see below) *)
  339.   fiFlags = TagBase+40;
  340.    (* suggested height of file requester *)
  341.   fiHeight = TagBase+41;
  342.    (* replacement text for 'Ok' gadget (max 6 chars) *)
  343.   fiOkText = TagBase+42;
  344.   (* (V38) bring up volume requester, tag data holds flags (see below) *)
  345.   fiVolumeRequest = TagBase+43;
  346.   (* (V38) call this hook for every file in the directory *)
  347.   fiFilterFunc = TagBase+44;
  348.   (* (V38) allow empty file to be accepted - default FALSE *)
  349.   fiAllowEmpty = TagBase+45;
  350.  
  351. (*** tags specific to FontRequestA ***
  352. *)
  353.    (* various flags (see below) *)
  354.   foflags = fiFlags;
  355.    (* suggested height of font requester *)
  356.   foHeight = fiHeight;
  357.    (* replacement text for 'Ok' gadget (max 6 chars) *)
  358.   foOkText = fiOkText;
  359.    (* suggested height of font sample display - default 24 *)
  360.   foSampleHeight= TagBase+60;
  361.    (* minimum height of font displayed *)
  362.   foMinHeight = TagBase+61;
  363.    (* maximum height of font displayed *)
  364.   foMaxHeight = TagBase+62;
  365.    (* [TagBase+63 to TagBase+66 used below] *)
  366.   (* (V38) call this hook for every font *)
  367.   foFilterFunc = fiFilterFunc;
  368.  
  369.   (*** (V38) tags for rtScreenModeRequestA ***
  370. *)
  371.   (* various flags (see below) *)
  372.   scFlags = fiFlags;
  373.   (* suggested height of screenmode requester *)
  374.   scHeight = fiHeight;
  375.   (* replacement text for 'Ok' gadget (max 6 chars) *)
  376.   scOkText = fiOkText;
  377.   (* property flags (see also RTSC_PropertyMask) *)
  378.   scPropertyFlags = TagBase+90;
  379.   (* property mask - default all bits in RTSC_PropertyFlags considered *)
  380.   scPropertyMask = TagBase+91;
  381.   (* minimum display width allowed *)
  382.   scMinWidth = TagBase+92;
  383.   (* maximum display width allowed *)
  384.   scMaxWidth = TagBase+93;
  385.   (* minimum display height allowed *)
  386.   scMinHeight = TagBase+94;
  387.   (* maximum display height allowed *)
  388.   scMaxHeight = TagBase+95;
  389.   (* minimum display depth allowed *)
  390.   scMinDepth = TagBase+96;
  391.   (* maximum display depth allowed *)
  392.   scMaxDepth = TagBase+97;
  393.   (* call this hook for every display mode id *)
  394.   scFilterFunc = fiFilterFunc;
  395.  
  396. (*** tags for ChangeReqAttrA ***
  397. *)
  398.    (* file requester - set directory *)
  399.   fiDir = TagBase+50;
  400.    (* file requester - set wildcard pattern *)
  401.   fiMatchPat = TagBase+51;
  402.    (* file requester - add a file or directory to the buffer *)
  403.   fiAddEntry = TagBase+52;
  404.    (* file requester - remove a file or directory from the buffer *)
  405.   fiRemoveEntry = TagBase+53;
  406.    (* font requester - set font name of selected font *)
  407.   foFontName = TagBase+63;
  408.    (* font requester - set font size *)
  409.   foFontHeight = TagBase+64;
  410.    (* font requester - set font style *)
  411.   foFontStyle = TagBase+65;
  412.    (* font requester - set font flags *)
  413.   foFontFlags = TagBase+66;
  414.   (* (V38) screenmode requester - get display attributes from screen *)
  415.   scModeFromScreen = TagBase+80;
  416.   (* (V38) screenmode requester - set display mode id (32-bit extended) *)
  417.   scDisplayID = TagBase+81;
  418.   (* (V38) screenmode requester - set display width *)
  419.   scDisplayWidth = TagBase+82;
  420.   (* (V38) screenmode requester - set display height *)
  421.   scDisplayHeight = TagBase+83;
  422.   (* (V38) screenmode requester - set display depth *)
  423.   scDisplayDepth = TagBase+84;
  424.   (* (V38) screenmode requester - set overscan type, 0 for regular size *)
  425.   scOverscanType = TagBase+85;
  426.   (* (V38) screenmode requester - set autoscroll *)
  427.   scAutoScroll = TagBase+86;
  428.  
  429. (*** tags for PaletteRequestA ***
  430. *)
  431.    (* initially selected color - default 1 *)
  432.   paColor = TagBase+70;
  433.  
  434. (*** tags for ReqHandlerA ***
  435. *)
  436.    (* end requester by software control, set tagdata to REQ_CANCEL, REQ_OK or
  437.     in case of EZRequest to the return value *)
  438.   rhEndRequest = TagBase+60;
  439.  
  440. (*** tags for AllocRequestA ***)
  441.   (* no tags defined yet *)
  442.  
  443.  
  444. (************
  445. * ReqPos *
  446. ************)
  447.   ReqPosPointer = 0;
  448.   ReqPosCenterWin = 1;
  449.   ReqPosCenterScr = 2;
  450.   ReqPosTopLeftWin = 3;
  451.   ReqPosTopLeftScr = 4;
  452.  
  453. (******************
  454. * RTRH_EndRequest *
  455. ******************)
  456.   ReqCancel = 0;
  457.   ReqOK = 1;
  458.  
  459. (***************************************
  460. * flags for RTFI_Flags and RTFO_Flags  *
  461. * or filereq->Flags and fontreq->Flags *
  462. ***************************************)
  463.   fReqNoBuffer = 2;
  464.  
  465. (*****************************************
  466. * flags for RTFI_Flags or filereq->Flags *
  467. *****************************************)
  468.   fReqMultiSelect = 0;
  469.   fReqSave = 1;
  470.   fReqNoFiles = 3;
  471.   fReqPatGad = 4;
  472.   fReqSelectDirs = 12;
  473.  
  474. (*****************************************
  475. * flags for RTFO_Flags or fontreq->Flags *
  476. *****************************************)
  477.   fReqFixedWidth = 5;
  478.   fReqColorFonts = 6;
  479.   fReqChangePalette = 7;
  480.   fReqLeavePalette = 8;
  481.   fReqScale = 9;
  482.   fReqStyle = 10;
  483.  
  484. (*****************************************************
  485. * (V38) flags for RTSC_Flags or screenmodereq->Flags *
  486. *****************************************************)
  487.   scReqSizeGads = 13;
  488.   scReqDepthGad = 14;
  489.   scReqNonStdModes =15;
  490.   scReqGuiModes = 16;
  491.   scReqAutoscrollGad =18;
  492.   scReqOverscanGad =19;
  493.  
  494. (*****************************************
  495. * flags for RTEZ_Flags or reqinfo->Flags *
  496. *****************************************)
  497.   ezReqNoReturnKey = 0;
  498.   ezReqLamigaQual = 1;
  499.   ezReqCenterText = 2;
  500.  
  501. (***********************************************
  502. * (V38) flags for RTGL_Flags or reqinfo->Flags *
  503. ***********************************************)
  504.   glReqCenterText = ezReqCenterText;
  505.   glReqHighlightText = 3;
  506.  
  507. (***********************************************
  508. * (V38) flags for RTGS_Flags or reqinfo->Flags *
  509. ***********************************************)
  510.   gsReqCenterText = ezReqCenterText;
  511.   gsReqHighlightText = glReqHighlightText;
  512.  
  513. (*****************************************
  514. * (V38) flags for RTFI_VolumeRequest tag *
  515. *****************************************)
  516.   vReqNoAssigns = 0;
  517.   vReqNoDisks = 1;
  518.   vReqAllDisks = 2;
  519.  
  520. (*
  521.    Following things are obsolete in ReqTools V38.
  522.    Don't use them in new code!
  523. *)
  524.   fReqDoWildFunc = 11;
  525.   ReqHookWildFile = 0;
  526.   ReqHookWildFont = 1;
  527.  
  528. PROCEDURE AllocRequestA (type{0}: LONGINT;
  529.                          tagList{8}: TagItemPtr): ADDRESS;        CODE -30;
  530. PROCEDURE AllocRequest (type{0}: LONGINT;
  531.                         tag1{8}: TagItemPtr): ADDRESS;            CODE -30;
  532. PROCEDURE FreeRequest (req{9}: ADDRESS);                          CODE -36;
  533. PROCEDURE FreeReqBuffer (req{9}: ADDRESS);                        CODE -42;
  534. PROCEDURE ChangeReqAttrA (req{9}: ADDRESS;
  535.                           tagList{8}: TagItemPtr);                CODE -48;
  536. PROCEDURE ChangeReqAttr (req{9}: ADDRESS;
  537.                          tag1{8}: TagItemPtr);                    CODE -48;
  538. PROCEDURE FileRequestA (fileReq{9}: FileRequesterPtr;
  539.                 (*VAR*) fileName{10}: ADDRESS (*ARRAY OF CHAR*);
  540.                         title{11}: ADDRESS (*ARRAY OF CHAR*);
  541.                         tagList{8}: TagItemPtr): BOOLEAN;         CODE -54;
  542. PROCEDURE FileRequest (fileReq{9}: FileRequesterPtr;
  543.                (*VAR*) fileName{10}: ADDRESS (*ARRAY OF CHAR*);
  544.                        title{11}: ADDRESS (*ARRAY OF CHAR*);
  545.                        tag1{8}: TagItemPtr): BOOLEAN;             CODE -54;
  546. PROCEDURE FreeFileList (fileList{8}: FileListPtr);                CODE -60;
  547.  
  548. (* Die nächsten 6 Prozeduren können nicht direkt aus Modula benutzt werden,
  549.    da sie das Register A4 benötigen. Statt dessen können die Prozeduren aus
  550.    ReqToolsSupport benutzt werden. Wahlweise kann auch der Parameter
  551.    argarray gestrichen werden, falls dieser nicht gebraut wird.
  552.  
  553.    The next 6 procedures can not be used from Modula directly, because
  554.    they use register A4. Instead you can use the procedures from
  555.    ReqToolsSupport. Alternatively you can delete the parameter argarray, if
  556.    you do not need it. *)
  557.  
  558. PROCEDURE EZRequestA (bodyfmt{9}, gadfmt{10}: ADDRESS (*ARRAY OF CHAR*);
  559.                       reqInfo{11}: ReqInfoPtr;
  560.                       argarray{12}: ADDRESS;
  561.                       tagList{8}: TagItemPtr): LONGINT;           CODE -66;
  562. PROCEDURE EZRequestTags (bodyfmt{9}, gadfmt{10}: ADDRESS (*ARRAY OF CHAR*);
  563.                          reqInfo{11}: ReqInfoPtr;
  564.                          argarray{12}: ADDRESS;
  565.                          tag1{8}: TagItemPtr):LONGINT;            CODE -66;
  566. PROCEDURE EZRequest (bodyfmt{9}, gadfmt{10}: ADDRESS (*ARRAY OF CHAR*);
  567.                      reqInfo{11}: ReqInfoPtr;
  568.                      tagList{8}: TagItemPtr;
  569.                      argarray{12}: ADDRESS (*LONGINT*)): LONGINT; CODE -66;
  570. (* Without result.... *)
  571. PROCEDURE vEZRequestA (bodyfmt{9}, gadfmt{10}: ADDRESS (*ARRAY OF CHAR*);
  572.                        reqInfo{11}: ReqInfoPtr;
  573.                        argarray{12}: ADDRESS;
  574.                        tagList{8}: TagItemPtr);                   CODE -66;
  575. PROCEDURE vEZRequestTags (bodyfmt{9}, gadfmt{10}: ADDRESS (*ARRAY OF CHAR*);
  576.                           reqInfo{11}: ReqInfoPtr;
  577.                           argarray{12}: ADDRESS;
  578.                           tag1{8}: TagItemPtr);                   CODE -66;
  579. PROCEDURE vEZRequest (bodyfmt{9}, gadfmt{10}: ADDRESS (*ARRAY OF CHAR*);
  580.                       reqInfo{11}: ReqInfoPtr;
  581.                       tagList{8}: TagItemPtr;
  582.                       argarray{12}: ADDRESS (*LONGINT*));         CODE -66;
  583. PROCEDURE GetStringA ((*VAR*) buffer{9}: ADDRESS (*ARRAY OF CHAR*);
  584.                       maxchars{0}: LONGINT;
  585.                       title{10}: ADDRESS (*ARRAY OF CHAR*);
  586.                       reqInfo{11}: ReqInfoPtr;
  587.                       tagList{8}: TagItemPtr): BOOLEAN;           CODE -72;
  588. PROCEDURE GetString ((*VAR*) buffer{9}: ADDRESS (*ARRAY OF CHAR*);
  589.                      maxchars{0}: LONGINT;
  590.                      title{10}: ADDRESS (*ARRAY OF CHAR*);
  591.                      reqInfo{11}: ReqInfoPtr;
  592.                      tag1{8}: TagItemPtr): BOOLEAN;               CODE -72;
  593. PROCEDURE GetLongA (VAR long{9}: LONGINT; title{10}: ADDRESS (*ARRAY OF CHAR*);
  594.                     reqInfo{11}: ReqInfoPtr;
  595.                     tagList{8}: TagItemPtr): BOOLEAN;             CODE -78;
  596. PROCEDURE GetLong (VAR long{9}: LONGINT; title{10}: ADDRESS (*ARRAY OF CHAR*);
  597.                    reqInfo{11}: ReqInfoPtr;
  598.                    tag1{8}: TagItemPtr): BOOLEAN;                 CODE -78;
  599. PROCEDURE FontRequestA (fontReq{9}: FontRequesterPtr;
  600.                         title{11}: ADDRESS (*ARRAY OF CHAR*);
  601.                         tagList{8}: TagItemPtr): BOOLEAN  ;       CODE -96;
  602. PROCEDURE FontRequest (fontReq{9}: FontRequesterPtr;
  603.                        title{11}: ADDRESS (*ARRAY OF CHAR*);
  604.                        tag1{8}: TagItemPtr):BOOLEAN  ;            CODE -96;
  605. PROCEDURE PaletteRequestA (title{10}: ADDRESS (*ARRAY OF CHAR*);
  606.                            reqInfo{11}: ReqInfoPtr;
  607.                            tagList{8}: TagItemPtr): LONGINT;      CODE -102;
  608. PROCEDURE PaletteRequest (title{10}: ADDRESS (*ARRAY OF CHAR*);
  609.                           reqInfo{11}: ReqInfoPtr;
  610.                           tag1{8}: TagItemPtr): LONGINT;          CODE -102;
  611. PROCEDURE ReqHandlerA (hinfo{9}: HandlerInfoPtr;
  612.                        sigs{0}: LONGSET;
  613.                        tagList{8}: TagItemPtr): LONGINT;          CODE -108;
  614. PROCEDURE ReqHandler (hinfo{9}: HandlerInfoPtr;
  615.                       sigs{0}: LONGSET;
  616.                       tag1{8}: TagItemPtr): LONGINT;              CODE -108;
  617. PROCEDURE SetWaitPointer (window{8}: WindowPtr);                  CODE -114;
  618. PROCEDURE GetVScreenSize (screen{8}: ScreenPtr;
  619.                           VAR width{9},height{10}: LONGINT);      CODE -120;
  620. PROCEDURE SetReqPosition (reqpos{0}: LONGINT;
  621.                           VAR nw{8}: NewWindow;
  622.                           screen{9}: ScreenPtr;
  623.                           window{10}: WindowPtr);                 CODE -126;
  624. PROCEDURE Spread ((*VAR*) posarray{8}: ADDRESS (*ARRAY OF LONGINT*);
  625.                   sizearray{9}: ADDRESS (*ARRAY OF LONGINT*);
  626.                   totalsize{0}, min{1}, max{2}, num{3}: LONGINT); CODE -132;
  627. PROCEDURE ScreenToFrontSafely (screen{8}: ScreenPtr);             CODE -138;
  628.  
  629. (*--- functions in V38 or higher (distributed as Release 2.0) ---*)
  630. PROCEDURE ScreenModeRequestA (screenmodeReq{9}: ScreenModeRequesterPtr;
  631.                               title{11}: ADDRESS (*ARRAY OF CHAR*);
  632.                               tagList{8}: TagItemPtr): BOOLEAN;   CODE -144;
  633. PROCEDURE ScreenModeRequest (screenmodeReq{9}: ScreenModeRequesterPtr;
  634.                              title{11}: ADDRESS (*ARRAY OF CHAR*);
  635.                              tag1{8}: TagItemPtr): BOOLEAN;       CODE -144;
  636. PROCEDURE CloseWindowSafely (window{8}: WindowPtr);               CODE -150;
  637. PROCEDURE LockWindow (window{8}: WindowPtr): LONGINT;             CODE -156;
  638. PROCEDURE UnlockWindow (window{8}: WindowPtr;
  639.                         winlock{9}: LONGINT);                     CODE -162;
  640.  
  641. END ReqTools.
  642.